The invention relates to a device and method to emulate interrupts in order to provide IBM(trademark) Personal Computer Series (PS/2) mouse and PS/2 keyboard functionality for an universal serial bus (USB) mouse and USB keyboard.
Microprocessor-based systems have recently begun using USB as a form of interface to USB peripheral devices such as disk drives, printers, modems, keyboards and a mouse. With the addition of additional equipment, such as one or more USB hubs, a single USB controller may support up to 127 devices in a computer system. Further, using the more advanced operating systems, such as Windows 2000(trademark), it is possible to plug an USB device into any USB port on an USB or USB hub and the operating system will, upon activation of the computer system, identify each device and interface connected to it. Therefore, the user, having a computer system with an USB and advanced operating system, no longer need be concerned with plugging each component into the proper port, which simplifies installing USB peripheral devices.
However, manufacturers of computer base boards face a problem in that the computer base boards must not only support the newer operating systems, such as Windows 2000(trademark), but also the older operating systems such as DOS, Windows 3.1(trademark), Windows NT(trademark), and Windows 95(trademark). Further, since the users of these older operating systems often are using older peripherals such as a PS/2 keyboard and PS/2 mouse, it is necessary to provide support on the computer base board for both an USB keyboard and USB mouse as well as a PS/2 keyboard and PS/2 mouse, which may both be supported by operating systems such as Windows 98(trademark). However, in order to provide support for both an USB keyboard and USB mouse as well as a PS/2 keyboard and PS/2 mouse, separate controllers and ports have heretofore been required for each. This requires the use of significant space on the computer base board which could be used to support other functions.
In addition, when using the older operating systems with an USB keyboard and USB mouse, interrupts must be generated to the central processing unit (CPU) which cause the USB keyboard and USB mouse to be recognized and treated as if they were a PS/2 keyboard and PS/2 mouse. This requires the controller for the USB keyboard and USB mouse to communicate with the controller for the PS/2 mouse and PS/2 keyboard so that the controller for the PS/2 mouse and PS/2 keyboard can generate an interrupt to the CPU. This requires additional logic on the computer base board and further use of the limited space on that computer base board at the cost of that space being unavailable for other functions. The presence of the controller for the PS/2 keyboard and PS/2 mouse is still required even when only an USB keyboard and USB mouse are used on the computer system, due to the requirement of supporting the older operating systems discussed above. Therefore, due to the need to support older operating systems, a significant amount of space and logic and significant financial investment is required to support an USB mouse and an USB keyboard on a computer base board. This increases the cost of the computer base board and limits the addition of features that may be more desirable.
Therefore, what is needed is a device and method that will emulate interrupts so that an USB keyboard and USB mouse will appear and be treated by the older operating systems as if they were a PS/2 keyboard and PS/2 mouse. This emulation of interrupts should not require the presence of a controller for a PS/2 mouse and PS/2 keyboard. Using this device and method of interrupt emulation, a significant savings in space used on computer base board and the cost of the computer base board should be achieved by eliminating the controller for a PS/2 keyboard and a PS/2 mouse used to generate interrupts as well as the ports required by a PS/2 mouse and PS/2 keyboard while maintaining compatibility with the older operating systems.